package com.kaizeli.website.pojo.dto;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 项目验收单DTO
 */
@Data
public class ProjectAcceptanceDTO {

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 验收单编号
     */
    private String acceptanceNo;

    /**
     * 项目ID
     */
    private Long projectId;

    /**
     * 项目名称
     */
    private String projectName;

    /**
     * 项目编号
     */
    private String projectCode;

    /**
     * 子项目名称
     */
    private String subProjectName;

    /**
     * 对接人
     */
    private String contactPerson;

    /**
     * 客户
     */
    private String client;

    /**
     * 部门
     */
    private String department;

    /**
     * 科室
     */
    private String section;

    /**
     * 合同号
     */
    private String contractNo;

    /**
     * 验收时间点
     */
    private LocalDate acceptanceDate;

    /**
     * 验收时间点优先级
     */
    private Integer priority;

    /**
     * 开始时间
     */
    private LocalDate startDate;

    /**
     * 结束时间
     */
    private LocalDate endDate;

    /**
     * 工时类型（hour-时，day-天，month-月）
     */
    private String workType;

    /**
     * 验收人员ID
     */
    private Long acceptancePersonId;

    /**
     * 验收人员姓名
     */
    private String acceptancePersonName;

    /**
     * 验收标准
     */
    private String acceptanceStandard;

    /**
     * 预算金额
     */
    private BigDecimal budgetAmount;

    /**
     * 验收金额
     */
    private BigDecimal acceptanceAmount;

    /**
     * 总工时
     */
    private BigDecimal totalHours;

    /**
     * 验收状态
     */
    private String status;

    /**
     * 已验收时间
     */
    private LocalDateTime acceptanceCompletionTime;

    /**
     * 验收附件URL
     */
    private String attachmentUrls;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 验收成员列表
     */
    private List<AcceptanceMemberDTO> members;
}